import React from 'react';

type ButtonType = 'default' | 'primary' | 'text' | 'link' | 'dashed';
type ButtonSize = 'small' | 'middle' | 'large';
type ButtonShape = 'default' | 'circle' | 'round';
type ButtonStatus = 'default' | 'warning' | 'danger';
type ButtonHtmlType = 'reset' | 'button' | 'submit';
type ButtonIconPosition = 'left' | 'right';

export interface ButtonProps {
  block?: boolean;
  type?: ButtonType;
  size?: ButtonSize;
  shape?: ButtonShape;
  status?: ButtonStatus;
  htmlType?: ButtonHtmlType;
  ghost?: boolean;
  loading?: boolean | { delay: number };
  disabled?: boolean;
  icon?: { src: (React.ReactNode | string), position?: ButtonIconPosition };
  href?: string;
  target?: string;
  style?: React.CSSProperties;
  noStyle?: boolean;
  useClass?: string;
  className?: string;
  prefixCls?: string;
  children?: React.ReactNode;
  onClick?: React.MouseEventHandler<HTMLElement>;
}